/*
 * ComandoRemoverUnidade.java
 *
 * Created on 8 de Janeiro de 2008, 00:02
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package br.uff.javabasico.comandos;

import br.uff.javabasico.DAO.ProdutoDAOImpl;
import br.uff.javabasico.exception.BDException;
import br.uff.javabasico.exception.ExcecaoComando;
import br.uff.javabasico.modelos.Cliente;
import br.uff.javabasico.modelos.Produto;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

/**
 *
 * @author HelioKann
 */
public class ComandoRemoverUnidade implements Comando{
    
    /** Creates a new instance of ComandoRemoverUnidade */
    public ComandoRemoverUnidade() {
    }

    public String executar(HttpServletRequest req) throws ExcecaoComando {
        HttpSession sessao = req.getSession();
        Cliente cli = (Cliente) sessao.getAttribute("cliente");        
        int idProduto = -1;
        Produto p = null;
        
        try {
            idProduto = Integer.parseInt(req.getParameter("idProduto"));
        } catch (NumberFormatException e) {
            req.setAttribute("ERRO", "Erro ao obter o produto");
            return "EditarCompra.jsp";
        }
        
        try {            
            p = ProdutoDAOImpl.recupera(idProduto);
            p.setQtd(p.getQtd()+1);
            ProdutoDAOImpl.atualiza(p);
        } catch (BDException ex) {
            req.setAttribute("ERRO", "Erro ao atualizar o produto "+ex.getMessage());
            return "EditarCompra.jsp";
        }
        try {
            cli.getPedidoAberto().adicionaItem(p,-1);
        } catch (BDException ex) {
            req.setAttribute("ERRO", "Erro ao atualizar o item pedido "+ex.getMessage());
            return "EditarCompra.jsp";
        }
        
        sessao.setAttribute("cliente", cli);
        
         try {
            
            sessao.setAttribute("produtosDisponiveis", ProdutoDAOImpl.getLista());
        } catch (BDException ex) {
            req.setAttribute("ERRO", "Erro ao obter lista de produtos");
            return "";
        }
        
        return "EditarCompra.jsp";
    }
    
}
